{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "205909dd",
   "metadata": {},
   "source": [
    "#  第一讲 图论基础"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d6f03c9c",
   "metadata": {},
   "outputs": [],
   "source": [
    "#!/usr/bin/python3\n",
    "# -*- coding: utf-8 -*-\n",
    "# Author ： 单哥的科研日常\n",
    "# 关注B站和公众号：单哥的科研日常，获取更多讲解教程"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dafe9c76",
   "metadata": {},
   "source": [
    "### 实验环境：\n",
    "### Python版本==3.9.6, networkx==2.6.3, matplotlib==3.5.2\n",
    "### 说明，以下程序在上述环境下测试均没有问题，若出现问题，最可能的原因是库的版本的问题。例如，对于较新的 networkx，会出现无法正常打印As = nx.adjacency_matrix(G)的情况。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "342ceaa0",
   "metadata": {},
   "source": [
    "### 创建一个简单的图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "974326f5-a713-46e8-9779-f2d79ffe6cad",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入库\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5a13d41a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 创建一个空图（不包含节点和边）\n",
    "G = nx.Graph()\n",
    "# 添加节点\n",
    "G.add_nodes_from([1,2,3,4])\n",
    "# 添加边\n",
    "G.add_edges_from([(1,2),(1,3),(2,3),(2,4)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "708f6183",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec2773a3",
   "metadata": {},
   "source": [
    "### 获取图的邻接矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8123418f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 1)\t1\n",
      "  (0, 2)\t1\n",
      "  (1, 0)\t1\n",
      "  (1, 2)\t1\n",
      "  (1, 3)\t1\n",
      "  (2, 0)\t1\n",
      "  (2, 1)\t1\n",
      "  (3, 1)\t1\n"
     ]
    }
   ],
   "source": [
    "As = nx.adjacency_matrix(G)\n",
    "print(As)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f7bd4684",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0 1 1 0]\n",
      " [1 0 1 1]\n",
      " [1 1 0 0]\n",
      " [0 1 0 0]]\n"
     ]
    }
   ],
   "source": [
    "# 转化成二维数组形式的矩阵\n",
    "A = As.todense()\n",
    "print(A)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "809dd795",
   "metadata": {},
   "source": [
    "### 已知图的邻接矩阵，创建图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "48b209b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "A = np.array([[0, 1, 1], [1, 0, 1], [1, 1, 0]])\n",
    "G = nx.from_numpy_matrix(A)\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "155db57f",
   "metadata": {},
   "source": [
    "### 加权图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d030b3dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.  3.  1.5]\n",
      " [3.  0.  7.5]\n",
      " [1.5 7.5 0. ]]\n"
     ]
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_weighted_edges_from([(0, 1, 3.0), (1, 2, 7.5), (0, 2, 1.5)])\n",
    "As = nx.adjacency_matrix(G)\n",
    "print(As.todense())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e86dd0d8",
   "metadata": {},
   "source": [
    "### 有向图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5c56e67b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.DiGraph()\n",
    "# 添加节点\n",
    "G.add_nodes_from([1,2,3,4])\n",
    "# 添加边\n",
    "G.add_edges_from([(1,2),(1,3),(2,3),(3,4)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de93b2c7",
   "metadata": {},
   "source": [
    "### 度、平均度以及度分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "14aa6c79",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.Graph()\n",
    "# 添加节点\n",
    "G.add_nodes_from([1,2,3,4])\n",
    "# 添加边\n",
    "G.add_edges_from([(1,2),(2,3),(2,4),(3,4)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "56a1f5dd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取网络G的度\n",
    "d = nx.degree(G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "74b891d8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{1: 1, 2: 3, 3: 2, 4: 2}\n",
      "平均度为： 2.0\n"
     ]
    }
   ],
   "source": [
    "d = dict(nx.degree(G))\n",
    "print(d)\n",
    "print(\"平均度为：\", sum(d.values())/len(G.nodes))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "89c49cb4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 1]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获取度分布\n",
    "nx.degree_histogram(G) # 返回所有位于区间[0, dmax]的度值的频率列表"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3978aabb",
   "metadata": {},
   "source": [
    "### 绘制度分布直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "af87beb4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "a2672077",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0, 1, 2, 3]\n",
      "[0.0, 0.25, 0.5, 0.25]\n"
     ]
    }
   ],
   "source": [
    "x = list(range(max(d.values())+1))\n",
    "y = [i/len(G.nodes) for i in nx.degree_histogram(G)]\n",
    "print(x)\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "eb99f77e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0, 4.0)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(x, y, width=0.5, color=\"red\")\n",
    "plt.xlabel(\"$k$\")\n",
    "plt.ylabel(\"$p_k$\")\n",
    "plt.xlim([0,4])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a259116",
   "metadata": {},
   "source": [
    "### 路径和距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "4ee9f4f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_nodes_from([1,2,3,4,5])\n",
    "G.add_edges_from([(1,2),(2,3),(2,5),(3,4),(4,5)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "451603b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3, 4]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx.shortest_path(G, source=1, target=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "ff58be8b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[1, 2, 3, 4], [1, 2, 5, 4]]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 两个节点之间所有的最短路径\n",
    "list(nx.all_shortest_paths(G, source=1, target=4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "a172f90b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求两个节点的最短路径长度（距离）\n",
    "nx.shortest_path_length(G, source=1, target=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "831ec787",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.6"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求整个网络的平均距离\n",
    "nx.average_shortest_path_length(G)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "737db4da",
   "metadata": {},
   "source": [
    "### 连通性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "758d66e7",
   "metadata": {},
   "outputs": [],
   "source": [
    "Ga = nx.Graph()\n",
    "Ga.add_nodes_from([1,2,3,4,5,6,7])\n",
    "Ga.add_edges_from([(1,2),(1,3),(2,3),(4,7),(5,6),(5,7),(6,7)])\n",
    "# nx.draw(Ga, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "ae3cd7f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "Gb = nx.Graph()\n",
    "Gb.add_nodes_from([1,2,3,4,5,6,7])\n",
    "Gb.add_edges_from([(1,2),(1,3),(2,3),(2,4),(4,7),(5,6),(5,7),(6,7)])\n",
    "# nx.draw(Gb, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "85dcd60a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "print(nx.is_connected(Ga))\n",
    "print(nx.is_connected(Gb))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "768c30d4",
   "metadata": {},
   "source": [
    "### 集聚系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "2a0feb01",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb4AAAEuCAYAAADx63eqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABi1ElEQVR4nO3ddViUWd8H8O/QiBKSCiioGEuJooKt2F2oCAwW2GuvuWusrt0tGAxg6+5ahGJioSIIuLYiYNBIM3HeP/bRV1dEYmbOxPlcl9c+jjP3+eLjzG/OuU9wCCEEDMMwDKMkVGgHYBiGYRhpYoWPYRiGUSqs8DEMwzBKhRU+hmEYRqmwwscwDMMoFVb4GIZhGKXCCh/DMAyjVFjhYxiGYZQKK3wMwzCMUmGFj2EYhlEqrPAxDMMwSoUVPoZhGEapsMLHMAzDKBVW+BiGYRilwgofwzAMo1RY4WMYhmGUCit8DMMwjFJhhY9hGIZRKqzwMQzDMEpFjXYAhmGY6hAIRUjJLkKJQARNNRVYGGhDTZV9p2e+jxU+hmHkTnZBKY7eS8aJmBQkZRZAXVUFKhwORISALxShvqEOhrWwwMhWltCvoUE7LiNjOIQQQjsEwzBMRZQKRNgS+RQBUa/A4QDFfNF3n6ulrgJCgPHtrTHdrTE01FgvkPkXK3wMw8iF1JwieAbcxoePxSgqp+D9l7a6Ckx1tRAy3gXm+toSTMjIC1b4GIaReak5Rei/PQq5hXwIq/CRpcrhQK+GOs5Mbc+KH8NmdTIMI9tKBSJ4BtyuctEDACEhyC3kwyvgNvjCivcWGcXECh/DMDJtS+RTfPhYXOWi94mQELz/WIItkc/ElIyRV6zwMQwjs7ILShEQ9eqH9/T4WalIWjcYGWfWl/u8Ir4Q/tdfIqewVJwxGTnDCh/DMDLr6L1kcDg/fl5WxG5o1rGp0DU5nH+vyygvVvgYhpFZJ2JSyl2yAAAFj65CRUsHWvUdK3TNYr4IJ+6niCMeI6dY4WMYRiYJhCIkZRaU+xxRSSFyrofAoOv4Sl37dWYBBGySi9JihY9hGJmUkl0E9R9sPZZzLQg1HXtATdeoUtdWV1VBSnZRdeIxcoxtWcYwjNSJRCLk5OQgLS3tu79S8kUotBsFqJe97q70w0sUJ8WhzpgtlW5fhcNBiYD1+JQVW8DOMEy1EUJQUFCA9PT0covZp18ZGRmoWbMmTExMvvuL6Bjht1tFKBaU/RH18e7fyLnGA0fj38JISosBIoK6oeUPi2ENDVWcn9YBVkY6Yv+7YGQfK3wMw5SptLT0cyGrSEEDAFNTUxgbG5db0ExMTGBkZAQNjfI3jxYIRWi2JAx8YdkfUSJ+MUjJ/w9Xfow+BUHuB9TuOQWqNfTKvba6Kgf/LOvFTnFQUmyok2GUhEgkQlZW1lfFqryClp+f/7mI/beY2djYfFPMdHTE23tSU1VBfUMdPE/LL/PPVdS1AHWtz7/nqGuBo6bxw6IHAFaGOqzoKTFW+BhGThFCkJ+f/03B+l4xy8zMhK6u7lfF6lNBs7e3/6aQ6evrQ0WFbnEY1sICmy8+RXEF7sfpd/Cs0DW11FXg3tKiutEYOcYKH8PIkJKSku8WrrIeV1VVLXMosX79+mjVqtU3w4vq6uq0f8QKI4RAK/U+iorVwVET35l6hADDnS3Fdj1G/rDCxzASJBQKvxleLK+YFRYWfvceWdOmTb/prYl7eFFWvHnzBlOmTMGrV68waOZmRCTxK3UU0fdoq6tiXHtrdjitkmOFTwIEQhFSsotQIhBBU00FFgba7H6CgiCEIC8v74cTPT4VtKysLOjp6ZVZyJycnL65f6avrw9ORfboUlBCoRA7duzA8uXLMWPGDJw8eRJQUUPc5qtIziqq1kbVqhwOzHQ1Md2tYlubMYqLzeoUk+yCUhy9l4wTMSlIyiyAuqoKVDgciAgBXyhCfUMdDGthgZGtLNm3TRlTXFxc4Wn46enpUFdX/+GsxU8FzcjICGpq7PtlRTx8+BC+vr7Q0tLC3r170aRJk89/xs7jY8SJFb5qKhWIsCXyKQKiXoHDQbn7Cmqpq4AQYHx7a0x3awwNNdYLlASBQIDMzMwKF7OSkpIKTcH/VMy0tdkHpzgVFRXh999/R0BAAP744w+MHTu2zEk1VT2BnfCLYVG7Fo5N7sCKHgOAFb5qqeobUVtdBaa6WggZ78LeiBVACEFubm6F15Pl5OTAwMCgwsVMV1dXqYcXabp06RImTJiAFi1aYMuWLTAzMyv3+V9+0SwpLgbKmfSira4CEQFa1MjG01ObcetG1A/XDjLKgRW+KmJDL9VTVFRU4fVk6enp0NLS+mYK/vd+GRoaQlVVlfaPyJQjKysLc+bMwcWLF7Fjxw7079+/Uq//50USuoxfBLv+45GUVfjNrQUrQx24t7TAcGdL6Gmro1+/fnBycsKKFSsk9BMx8oTdfKiCUoEIngG3q1z0gH9Pg84t5MMr4DYiZnb64Wa8sk4gECAjI6PCa8r4fH6Zw4impqbfrCkzNjaGlpbWj0MwMo8QgqNHj2LmzJlwd3dHYmIiatWqVenr3Loaic6mAhyZ1blCk8n279+P5s2bo1evXmjfvr24fhxGTrHCVwVbIp/iw8fias0wA/4tfu8/lmBL5DPM6dHkxy+QIkLIdzcRLquY5ebmonbt2mUWs/+uJzMxMUGtWrXY8KKSSUpKwqRJk5CcnIw///wTLi4uVb5WeHg4evXqBeDfHV5+tOemqakp9uzZA29vb8TFxUFXV7fKbTPyjw11VlJ2QSlcVkeWu7N7xpn1KH4dBxG/GKo6BtB1GYpajj2/+3xNNRXcWeAm8dmehYWFFZqC/+l/16hRo9xJHl/+vnbt2mx4kSmTUCjE1q1bsXLlSsyaNQtz586t1kJ6oVAIExMTPHz4EObm5pV67YQJE1BSUoKDBw9WuX1G/rEeXyUdvZeMH3VUdF3cYdh7Ojhq6uBnJuP9oQXQMG0ITbNGZT6fw/n3uhM6NqxUFj6fX+bw4vcK2qcPjP/+Mjc3h5OT01fFzNjYGJqampXKwzD/FRsbC19fX9SqVQu3bt2CjU3119DdvXsX5ubmlS56ALBx40Y4OTnh+PHjcHd3r3YWRj6xwldJJ2JSyl2yAAAaxvW/+B0HHHAgyH733cJXzBfhxP0U+La3/uEZZV8Ws48fP8LQ0LDMYtawYcNvemc1a9Zkw4uMVBQWFmLZsmU4cOAAVq9ejTFjxojt3154eDh69vz+CEp5dHR0EBwcjP79+6Nt27ZVKp6M/GOFrxIEQhGSMgsq9NzM8J0oiI8EEZRAw7QhtBs6l/v8p+9yoKmljZo6ZQ8v2traokuXLl89ZmBgQH0TYYb5r4sXL2LChAlo3bo14uPjYWpqKtbrh4eHY/ny5VV+fevWrTFlyhSMHj0a4eHh7D2khNg9vkp4nVGAPtuuo7BUWKHnE5EQJamPUfwmHnouw8BR/f73DC01FZyZ7AqbOvpiSssw0pWRkYHZs2fj6tWr2LlzJ/r06SP2NrKzs1G/fn2kpaVVa6avQCBAhw4dMGLECMyYMUN8ARm5wL7qVEKJQASVSgzXcFRUoWVpC2FeBvIenC/3uWqqKhBx2OQQRv4QQhASEgI7OzvUrl0bCQkJEil6wL+9yQ4dOlR7eYuamhqCg4OxcuVKJCQkiCkdIy/YUGclaKqpQFSVDrJIBEH2u/KfQgg02RZmjJx59eoVJk2ahHfv3uHMmTNo1aqVRNurzv29/2rYsCHWrFkDT09PREdHs8lcSoR90laChYE2+MLyJ7YIC3JQ8OgqRKVFICIhil7eR8E/V6Fl1bzc1/GFIlgYKN8OLox8EggE2LBhA1q1aoUuXbrg3r17Ei96hBCxFj4AGDNmDBo2bIjFixeL7ZqM7GM9vkpQU1VBfUMdPE/L//6TOBzkPQhFZvhOgIigpmcCAzdf1LBpU+61NUpycfNGFNq3b89utjMyLSYmBr6+vjAwMMDt27fRqFHZs5XF7dGjR1BTU0Pjxo3Fdk0Oh4O9e/fC0dERvXv3RteuXcV2bUZ2scktlbT76gtsjnz6wyUNlaGpykFLjXd4eGwTCgsL4e3tDS6Xi4YNK7euj2EkqaCgAEuXLgWPx8PatWvB5XKlujxm48aNePr0KXbv3i32a4eHh8PX1xdxcXEwMDAQ+/UZ2cK6FpU0spUlxP5VgcPBzjneiI+Px4kTJ5CTkwNXV1d06NAB/v7+yM3NFXODDFM5ERERsLe3x7t37xAfHw8fHx+prwkV9zDnl3r27ImBAwdi0qRJYH0Bxcd6fFWwLvwx9t94VamjiL5HW10V49pbf7NXZ2lpKcLCwhAYGIjIyEj07t0bXC4X3bt3ZwebMlKTnp6OWbNmISoqCrt27fq8P6a0FRYWwtTUFCkpKdDT05NYG87Ozli0aBE8PT0l0gYjG1iPrwqmuzWGqa4WVKv5jVeVw4GZriamu327jZOGhgYGDBiAkydP4sWLF+jQoQOWLl2KevXqYe7cuYiPj69W2wxTHkIIeDwe7OzsYGpqioSEBGpFDwCuXbsGJycniRU9AKhRowaCg4MxY8YMJCUlSawdhj7W46siWufxPX78GDweD0FBQTA2NoaPjw88PDxgYmJS6QwMU5YXL15g4sSJyMzMhL+/P1q2bEk7EmbOnAkjIyMsWrRI4m2tWbMGoaGhiIyMZBuvKyjW46sic31tnJnaHpa1taGtXsm/RkEJ9NUFVTqEtmnTpvjjjz/w+vVrrF27Fvfv30fjxo0/9w5LSkoql4Vh/kcgEGDt2rVo06YNevTogejoaJkoegAQFhYmtR7nnDlzQAjBhg0bpNIeI32sx1dNpQIRtkQ+RUDUK5QUFwNq3z9aSFtdBSIC9LOpAd6cEbh/Lxr16tWrdoa8vDycOnUKgYGBePjwIYYPHw4fHx+0bt2abUrNVMi9e/fg6+sLY2Nj7N69Gw0aNKAd6bM3b97A2dkZ79+/l9pSn6SkJLRq1Qrh4eFwcnKSSpuM9LDCJyaJz16hm9+vsO0/HklZhVBXVYEKhwMRIeALRbAy1IF7SwsMd7aEfg0NrFq1ChEREYiMjBTrmzkpKQnBwcEIDAyEiooKuFwuvL29YWlpKbY2GMWRn5+P3377DYcOHcK6devg5eUlc1+W/P39ceXKFYSEhEi13ZCQEKxcuRL379+HtjbbXEKRsMInJv7+/rh8+TIOHToEgVCElOwilAhE0FRTgYWBNtRUvy5uQqEQnTt3xsCBAzFnzhyx5yGE4Pbt2wgMDMTx48fRvHlz+Pj4YMiQIahZs6bY22PkT2hoKCZNmoSOHTti48aNMDIyoh2pTMOGDcOAAQPA5XKl2i4hBKNGjYKxsTG2bt0q1bYZCSOMWAwePJjweLxKvebVq1fEyMiIxMbGSijVv4qKisixY8dIv379iL6+PuFyuSQyMpIIhUKJtsvIpg8fPhAPDw/SoEEDEhERQTtOufh8PtHX1yfv3r2j0n5WVhaxtLQkoaGhVNpnJINNbhGD0tJSXLp0qdKLa62srLB+/Xp4enqiuLhYQukALS0tuLu748yZM3j8+DGaN2+O2bNnw8rKCosWLcKTJ08k1jYjOwghOHDgAOzt7WFhYYH4+Hh0796ddqxy3blzB1ZWVjAzM6PSvoGBAQ4ePIhx48YhIyODSgZG/FjhE4ObN2/CxsamSksKuFwumjVrhoULF0og2bdMTU0xc+ZMPHjwAGfPnkVxcTE6deoEFxcX7Nq1C1lZWVLJwUjX8+fP0a1bN+zYsQNhYWFYu3YtatSoQTvWD0lyt5aK6tq1Kzw8PODr68t2dVEQrPCJQWhoKHr37l2l13I4HOzevRvHjh3DxYsXxZysfA4ODtiwYQNSUlLw22+/4cqVK2jQoMHn3iGfz5dqHkb8+Hw+Vq1aBRcXF/Tt2xe3b9+Wq1mK0lzGUJ6VK1fixYsXOHDgAO0ojDjQHmtVBPb29uTmzZvVukZ4eDixsLAgmZmZYkpVNdnZ2WTPnj2kbdu2xMTEhEyfPp3ExMQQkUhENRdTeXfu3CEODg6kZ8+e5OXLl7TjVFp6ejrR1dUlJSUltKMQQgh5+PAhMTIyIs+fP6cdhakm1uOrppSUFKSmpqJ169bVuk6PHj0wZMgQ6pvk6uvrw8/PDzdu3MCNGzegq6uLwYMHw9HREevXr8e7d+UfqMvQl5eXhxkzZmDgwIGYN28eQkNDYW1tTTtWpV28eBGdOnWChsb318ZKk729PRYtWgRvb28IBALacZhqYIWvmsLCwtCjRw+xbG20evVqJCQkSH290vc0atQIy5cvx8uXL7Ft2zY8evQIP/30E/r06YMjR46gqKiIdkTmP86dOwc7Ozvk5uYiISEBo0aNkrl1eRUlK8OcX/r555+ho6ODVatW0Y7CVAftLqe8GzJkCAkMDBTb9WJiYoiRkRF5/fq12K4pTvn5+SQ4OJh0796dGBgYEF9fX3L9+nU2FErZu3fvyPDhw0nDhg3JxYsXacepNpFIROrUqSOTw4opKSnExMSE3Llzh3YUpopYj68a+Hw+IiMjxTrrzMnJCXPmzAGXy4VQKBTbdcVFR0cHnp6eiIiIwMOHD9GwYUP4+fnBxsYGy5cvx6tXr2hHVCqEEOzbtw8ODg5o0KAB4uPj4ebmRjtWtcXHx6NGjRoyeRizubk5duzYAS8vL+Tn59OOw1QBK3zVcPPmTTRq1AimpqZiva68bJJrYWGBefPmITExEYcPH0Z6ejpat26NTp06Yf/+/fj48SPtiArt6dOn6NKlC/bs2YMLFy5g1apVCrO1VlhYGPVlDOUZNmwYXF1dMXv2bNpRmCpgha8aqrOMoTyqqqrg8XhYt24dYmNjxX59ceNwOGjVqhW2bduG1NRUzJgxA2fOnEG9evU+9w5lsfcqr0pLS7Fy5Uq0bdsWgwcPxq1bt+Do6Eg7lliFh4fL3P29/9q2bRsiIiJw+vRp2lGYyqI91irPHBwcyI0bNyR2fR6PR3766SdSWFgosTYkKT09nWzdupU4OzuTunXrkl9++YUkJCTQjiXXbt26Rezs7EifPn1k9j5wdeXn55OaNWuSvLw82lF+6Nq1a8TMzIy8f/+edhSmEliPr4pSU1ORkpKCNm3aSKwNLy8v2NraYsGCBRJrQ5KMjIwwbdo03L17FxEREeBwOOjRowecnZ2xbds2tgVUJeTl5WHatGkYPHgwFi9ejLNnz6J+/fq0Y0nElStX4OzsLBebqXfo0AFjx47FuHHj2K4ucoQVvioKCwtD9+7dJXpC86ddXU6ePIkLFy5IrB1psLW1xerVq/HmzRv88ccfuHPnDho1aoRBgwbhzz//RGlpKe2IMuv06dOwtbVFYWEhEhMTMWLECLldolARsriMoTxLlizB+/fvsWfPHtpRmIqi3eWUV0OHDiUHDx6USlsXLlwg5ubm1Hd1Ebfc3Fyyb98+0rFjR2JkZESmTJlCoqOj2dKI/3n79i0ZNmwYsbGxIZcuXaIdR2psbGzIgwcPaMeolH/++YcYGRmRx48f047CVADr8VXBp2UM0vpW2q1bN7i7u2PixIkKNZyiq6uLsWPH4urVq4iOjoaJiQk8PDw+9w5TUlJoR6RCJBJh7969cHBwQOPGjREXF4cuXbrQjiUVL1++xMePH+Hg4EA7SqU0bdoUy5cvh6enJ9vjVg6wwlcFt27dQoMGDcS+jKE8q1atwqNHjxAcHCy1NqXJ2toav/32G549ewZ/f3+8fPkSDg4O6N69O4KDg1FQUEA7olQ8fvwYnTt3xv79+3Hp0iWsXLlSYZYoVMSn0xhUVOTvo2nixIkwNTXFsmXLaEdhfkD+/nXJAEktYyiPlpYWQkJCMGvWLLx+/VqqbUsTh8NBu3btsHfvXqSmpmL8+PE4dOgQLCwsMGbMGFy5cgUikYh2TLErLS3F8uXL0aFDBwwfPhw3btyAvb097VhSJwvHEFUVh8PB/v37sW/fPkRFRdGOw5SDQxRp7ExKmjdvjh07dqBdu3ZSb3vdunU4c+YMLl++LNGJNbLm/fv3CAkJQWBgID5+/Ahvb29wuVzY2NjQjlZtN27cgJ+fHxo2bIgdO3bA0tKSdiQqSktLYWJigmfPnsHY2Jh2nCo7ffo0pk+fjri4OOjq6tKOw5SBFb5Kevv2Lezs7JCWlgY1NTWpty8UCuHm5obevXtj3rx5Um+fNkII4uLiEBgYiEOHDqFRo0bgcrkYMWIE9PX1acerlNzcXCxYsAB//fUXtmzZgmHDhin0bM0fuXr1KmbPno179+7RjlJtfn5+KC0txcGDB2lHYcrAhjor6dMyBhpFD/h3V5fAwECsX78eDx48oJKBJg6Hg+bNm2PTpk1ISUnBggULcPHiRVhZWWHEiBE4d+6cXBwZ8+eff8LW1hYCgQCJiYlwd3dX6qIHyMduLRW1ceNG3LhxAydOnKAdhSkLzSml8mjYsGHkwIEDtGOQ4OBg0qxZM7nd1UXcsrKyyK5du4iLiwsxNTUls2bNIrGxsbRjfSM1NZUMHjyYNG7cmFy5coV2HJnSokULcu3aNdoxxOb27dvExMSEpKSk0I7C/Acb6qwEgUAAY2Nj/PPPPzAzM6OahRACDw8PmJiYYOvWrVSzyJonT54gKCgIPB4PtWvXho+PD0aNGiXVWbj/9WmJwq+//opJkyZh4cKF0NLSopZH1qSlpaFx48ZIT0+Huro67This3z5ckRFRSEsLEwuZ6oqLMqFV65cu3aNODk50Y7xWVZWFrGwsCDh4eG0o8gkoVBIIiMjiY+PD9HX1yd9+/Ylx44dI0VFRVLNkZiYSNq1a0dcXV3ZXqXfERQURAYPHkw7htjx+Xzi4uJCNm/eTDsK8wX2FaQSaCxjKI+BgQEOHjyIsWPHIjMzk3YcmaOiooKuXbvi4MGDSE5OxogRI7Bnzx6Ym5tj4sSJuHXrlkQ3BCgpKcHSpUvRqVMnjBo1ClFRUbC1tZVYe/JMnpcxlEdNTQ3BwcFYsWIFEhISaMdh/ocNdVaCk5MTtm3bhvbt29OO8pVZs2bhzZs3OH78uNJPkKiIN2/eIDg4GIGBgSCEgMvlwtvbW6ybPl+/fh1+fn5o0qQJtm/fDgsLC7FdW9GIRCLUqVMHd+7cgZWVFe04ErF//35s2bIF0dHR0NTUpB2HodvhlB9v374lBgYGhM/n047yjaKiImJnZye1vUMVhUgkIrdv3yaTJ08mhoaGpHPnzuTAgQPk48ePVb5mdnY28fPzI3Xr1iUnT54UY1rFdf/+fdKkSRPaMSRKJBKRQYMGkTlz5tCOwhA21FlhtJcxlEdLSwvBwcGYM2cOXr16RTuO3OBwOGjTpg127NiB1NRUTJ06FX/++ScsLS3h7e2NixcvVvgAXUIITp48CVtbW3A4HCQmJmLIkCES/gkUg6IOc36Jw+HA398fhw4dwqVLl2jHYWhXXnnh7u4uE8sYyrNu3TrSrl07IhAIaEeRax8+fCCbN28mTk5OxMLCgsyfP5/8888/331+cnIyGTBgAGnatCm5fv26FJMqhk6dOpFz587RjiEVoaGhxNLSkmRlZdGOotTYPb4KEAgEMDExwaNHj6gvYyiPSCRCt27d0L17d7k9vFbWxMfHg8fjISQkBJaWluByuRg5ciQMDQ0hEomwa9cuLF26FFOnTsX8+fPZ/ZtK+vjxI8zNzfH+/Xvo6OjQjiMV06ZNQ2ZmJg4dOkQ7itJiha8Crl+/junTpyMmJoZ2lB9KTk5Gy5YtERYWhhYtWtCOozAEAgEuXryIwMBAnD9/Hq1atUJKSgpq166Nffv2oVmzZrQjyqW///4b27dvl/uDliujsLAQzs7OWLx4MUaNGkU7jlJi9/gqQNaWMZTH0tISmzdvhqenJwoLC2nHURhqamro1asXDhw4AD8/P9y5cwdCoRDPnz/H7t27cf/+fYU6K1FalOH+3n/VqFEDwcHBmDFjBpKSkmjHUUqs8FWAPBU+ABg1ahScnJyUchNrSbp69SocHR3x8uVLPHnyBM+ePcOtW7dgYGAAd3d32NvbY+3atXj79i3tqHKBEIKwsDClK3wA0KJFC8yePRs+Pj4VnkDFiBHNG4zyQJaXMZQnKyuLWFpaktDQUNpR5F5WVhYZP348sbCwIH/++WeZzxEKheTatWtk3LhxxMDAgPTs2ZOEhISQgoIC6YaVI0+fPiV169YlIpGIdhQqBAIB6dixI1mzZg3tKEqH9fh+ICwsDN26dZPJZQzl+bSry7hx45CRkUE7jlwihODYsWOwtbWFhoYGEhMTMWjQoDKfq6Kigg4dOiAgIAApKSnw8fEBj8eDhYUFxo8fj2vXrrGh0P/4NMyprJsuqKqqgsfjKe1JKzSxwvcD8jbM+aWuXbvCw8MDEyZMYB+6lfTmzRsMGDAAy5Ytw4kTJ7Bjx44KHypao0YNeHh4ICwsDAkJCWjSpAkmT56Mhg0bYunSpXjx4oWE08sHZby/91/169fHxo0b4enpiaKiItpxlAab1VmOT8sYEhMTUadOHdpxqqSkpAStWrXCrFmzMHr0aNpxZJ5QKMSOHTuwfPlyTJ8+HfPmzYOGhka1r0sIQUxMDHg8Hg4fPowmTZrAx8cH7u7u0NPTE0Ny+VJSUgJjY2O8evUKhoaGtONQRdhJK9JHcZhV5l2/fp00b96cdoxqe/jwITEyMiIvXrygHUWmPXz4kLRu3Zp06NCh3AXr1VVSUkL++usvMmTIEKKnp0dGjhxJQkND5e4+cnVERkaSNm3a0I4hMz7dkw8LC6MdRSmwoc5yyPMw55fs7e2xYMECcLlcuTidXNqKioqwcOFCuLm5Yfz48bhy5QqaNm0qsfY0NDQwcOBAnDx5Ei9evED79u2xZMkS1KtXD3PnzkV8fLzE2pYVbJjza1+etMLuyUseK3zlUJTCBwAzZsyApqYm1qxZQzuKTLl8+TIcHR3x/PlzxMXFwdfXV6oHhhoaGmLKlCm4c+cOIiMjoaamht69e6NFixbYsmUL0tPTpZZFmsLCwtCrVy/aMWQKuycvRbS7nLLq3bt3RF9fX6GGn968eUOMjY3J3bt3aUehLjMzk4wZM4ZYWlqS06dP047zFYFAQC5cuEC8vLyInp4e6d+/Pzlx4gQpLi6mHU0s5HWJkDQUFxcTe3t7sn//ftpRFBrr8X2HvC5jKI+lpSW2bt0KLy8vpd3VhRCCI0eOwNbWFjVr1kRiYiL69+9PO9ZXVFVV0a1bNwQFBSE5ORlDhgzBjh07YG5ujsmTJ+POnTty3SOIiIiAm5ubQr23xEVTUxMhISH45Zdf2OxfCWKzOr9jxIgR6NmzJ8aOHUs7ith5enpCX18fO3bsoB1FqpKSkjBp0iQkJyfD398fLi4utCNVSlJSEoKCgsDj8aCiovL5AF1LS0va0SrFw8Pj8/1UpmybN2/GsWPHcO3aNfYFQRLodjhlE5/PJwYGBiQ1NZV2FInIzs4m9erVI+fPn6cdRSoEAgHZuHEjMTQ0JCtXriQlJSW0I1WLSCQiN2/eJBMmTCC1a9cmbm5uJDAwkOTl5dGO9kMCgYAYGhqSN2/e0I4i04RCIXFzcyPLly+nHUUhscJXhqioKOLo6Eg7hkRdvnyZ1K1bl6SlpdGOIlEPHjwgzs7OpHPnzuTJkye044hdUVEROXbsGOnbty/R09MjXC6XREZGEqFQSDtamaKjo8lPP/1EO4ZcSE5OJsbGxuTOnTu0oygcdo+vDIo0m/N7OnfujFGjRsHPz0+u7xd9T2FhIebNm4cePXpg0qRJuHTpEho3bkw7lthpaWnB3d0dZ8+exZMnT9C8eXPMmjULVlZWWLRoEZ4+fUo74leUdVPqqrCwsMCOHTvg5eWFgoIC2nEUCit8ZVCGwgcAK1aswMuXL3HgwAHaUcTq4sWLcHBwQFJSEuLj4zF27Fil2A/S1NQUM2fORGxsLM6cOYPi4mJ07NgRrq6u2LVrF7KysmhHRHh4OFvGUAnu7u5wdXXF7NmzaUdRLLS7nLLm0zKG0tJS2lGkIj4+nhgZGZHnz5/TjlJtGRkZxMfHh9SrV4+cPXuWdhyZwOfzyblz58jw4cOJnp4eGTZsGDl9+jSVf985OTmkVq1apLCwUOpty7Pc3FxiZWUlc8tu5Bnr8f1HeHg43NzcoK6uTjuKVNjZ2WHhwoXw9vaW211dCCEICQmBra0tDAwMkJiYiL59+9KOJRPU1NTQp08fHD16FK9evUL37t2xevVqWFhYYObMmXjw4IHUhrojIyPRtm1baGtrS6U9RaGrqwsejwc/Pz98+PCBdhyFwArffyjLMOeXpk+fjho1amD16tW0o1Taq1ev0Lt3b6xduxZnzpzBpk2bULNmTdqxZJKBgQH8/Pxw48YNREVFoVatWhg8eDAcHR2xYcMGvHv3TqLts91aqq5Dhw4YO3Ysxo0bp5D35KWOco9TpvD5fFK7dm2SkpJCO4rUJScnExMTExIdHU07SoXw+Xyyfv16YmhoSFatWqU0Q9PiJhQKyZUrV8iYMWOIvr4+6d27Nzly5IjYhyNFIhGpV68eefTokVivq0xKSkpIy5Ytya5du2hHkXus8H3hxo0bxMHBgXYMao4cOUIaN25M8vPzaUcp1/3790mLFi1I165dybNnz2jHURj5+fkkKCiIdO/enRgYGBBfX18SFRUllhPS//nnH2Jpaam0p62Lyz///EOMjIzI48ePaUeRa2yo8wvKOMz5pREjRqB169aYO3cu7ShlKigowNy5c9G7d29MmzYNFy9eRKNGjWjHUhg6Ojrw8vJCREQEHj58iIYNG8LX1xc2NjZYvnw5Xr16VeVrf1rGoAyzayWpadOmWLZsGby8vMDn82nHkVus8H1B2QsfAGzfvh3nz5/H+fPnaUf5SkREBOzt7fH27VvEx8dj9OjR7ENUgiwsLDBv3jwkJibi8OHDSE9PR+vWrdGpUyfs378fHz9+rNT12DIG8Zk0aRKMjY2xfPly2lHkF+0up6x4//490dPTY/eKCCFXrlwhderUkYldXdLS0oiXlxexsrJSmi3WZFVJSQk5deoUGThwINHT0yOjRo0i4eHhRCAQlPu6wsJCUqtWLZKdnS2doErg3bt3xMzMjERFRdGOIpdYj+9/lG0ZQ3k6deoEb29v+Pr6UptBRggBj8eDnZ0dTExMkJCQoPS9cdo0NDQwePBg/PXXX3j+/DlcXFywaNEi1KtXD/PmzcOjR4/KfN3169dhb28PfX196QZWYGZmZti9eze8vb0r3ftm2FDnZ2yY82vLly/H69evsW/fPqm3/fLlS/Ts2RObN2/G+fPnsWHDBujo6Eg9B/N9RkZGmDZtGu7evYuIiAgAQPfu3eHs7Ixt27Z9dYo4G+aUjIEDB6Jbt26YPn067Sjyh3aXUxYIBAJSu3ZtkpycTDuKTElISCBGRkZSmznJ5/PJmjVriKGhIVm7di07qFTOCAQCEh4eTkaNGkX09PTIoEGDyKlTp0izZs3YRssSkpeXRxo1akSOHz9OO4pcYYWPEHLz5k1ib29PO4ZM2rx5M3FxcZF4Ebp79y5p3rw56datG3nx4oVE22IkLzc3l+zbt4+0adOGcDgcMmXKFBIdHc2WM0jA7du3iYmJiVKuP64qNtQJNsxZnmnTpqFmzZr4448/JHL9/Px8zJo1C3379sWsWbMQERGBBg0aSKQtRnp0dXUxduxY+Pr6om/fvjAxMYGHhwdsbW2xevVqpKSk0I6oMNq0aYMpU6ZgzJgxEIlEtOPIBVb4wApfeVRUVHDw4EHs2LED0dHRYr12aGgo7OzskJGRgYSEBHh7e7MlCgomPDwcQ4cOxW+//YZnz57B398fL1++hIODA3r06IGQkBB25I4YLFy4EHl5edi2bRvtKPKBdpeTtg8fPrBlDBVw7NgxYmNjI5ZdXT58+EA8PDyItbU1CQ8PF0M6Rhbx+XxiYGBAUlNTv/mzwsJCcuTIEdK7d2+ir69PxowZQy5fviyzB+jKg2fPnhFDQ0MSHx9PO4rMU/oeX3h4OLp27cqWMfyAu7s7XFxcqnUuGCEEBw4cgL29PSwsLBAfH48ePXqIMSUjS+7evQsLCwvUrVv3mz/T1tbGiBEjcP78eTx69Ai2trb4+eef0bBhQ/z22294/vw5hcTyrVGjRlizZg28vLxQUlJCO45MU/rCx4Y5K27btm0IDw/H2bNnK/3a58+fo1u3bti+fTvCwsKwdu1atkRBwVV0GUOdOnUwe/ZsxMXF4dSpU8jLy0O7du3Qrl077N27Fzk5OZIPqyDGjh0La2tr/Prrr7SjyDbaXU6aBAIBMTQ0ZMsYKuHatWukTp065MOHDxV6fmlpKVm1ahUxNDQkGzZsYEsUlIiLiwu5ePFilV5bWlpKTp8+TYYNG0b09PTI8OHDyblz59i/nwpIT08ndevWJZcuXaIdRWZxCFHew51u374NX19fxMfH044iV+bPn49Hjx7h77//LncySnR0NHx9fVGnTh3s2rUL1tbWUkzJ0JSVlQUrKyukp6dDU1Oz2tc6evQoeDweXr9+jVGjRsHHxwcODg5iSqt4wsLC4Ofnh7i4OBgYGNCOI3OUeqiTDXNWzfLly5GcnIyAgIAy/zwvLw8zZszAgAEDMG/ePISGhrKip2QuXryIjh07VrvoAUDt2rUxadIk3Lp1C1euXIGWlhb69euH5s2bY9OmTexU8jL06tULAwcOxJQpU2hHkUms8LHCV2kaGhoICQnBwoUL8ezZs6/+7Ny5c7Czs0NOTg4SExMxatQotkRBCYWHh6Nnz55iv26TJk2wcuVKvH79Ghs3bkRcXByaNGmCfv364fjx4yguLhZ7m/JqzZo1iI2NxaFDh2hHkTlKO9SZnp4OGxsbpKWlQUNDg3YcubRt2zaEhIQgKioKGRkZmD59Ou7du4c9e/agW7dutOMxlBBCYGFhgcuXL6Nx48YSby8/Px+nTp1CYGAgYmNj4e7uDh8fH7i4uCj9l66YmBj07NkT9+7dQ/369WnHkRlK2+MLDw9Hly5dWNGrhilTpkBXVxdDhw6Fg4MDrK2tER8fz4qekktMTISmpiZsbGyk0l7NmjXB5XIRGRmJBw8eoF69ehg9ejSaNGmCFStWICkpSSo5ZFGLFi0we/Zs+Pj4QCgU0o4jM5S28LFhzup7/vw58vPzcf78eWzcuBGrV69GjRo1aMdiKPs0zEmjt1WvXj0sXLgQjx8/RlBQEN6+fYuWLVuiS5cuOHjwIPLy8qSeiba5c+dCJBJh48aNtKPIDKUc6hQKhTAzM0NMTAwsLS1px5E7paWlWLduHTZt2oTFixejTp06WLx4MR48eICaNWvSjsdQ1qNHD0yePBmDBg2iHQUAUFJSgrNnzyIwMBDXrl1D//794ePjgy5dukBVVZV2PKl4/fo1WrVqhQsXLqB58+a041CnlIXvzp07GDduHBISEmhHkTufloDUq1cPO3fu/HzfYPTo0dDU1MSePXsoJ2RoKiwshKmpKVJTU6Grq0s7zjfS0tJw+PBhBAYGIj09HV5eXvDx8UHTpk1pR5O44OBgrFq1Cvfu3YO2tjbtOFQp5VBnaGgo+vTpQzuGXMnLy8O0adMwZMgQLF68GGfPnv3qZvnWrVsRERGB06dPU0zJ0Hb16lW0aNFCJoseAJiYmGD69OmIiYnB+fPnIRAI0LVrV7Rp0wY7duxAZmYm7YgS4+npCXt7e8yfP592FOqUtvCx+3sVd/r0adja2qKwsBAJCQkYMWLEN/dvdHV1wePxMGHCBLauSolJahmDJNjb22PdunV48+YNli1bhqioKDRs2BBDhw7F33//DT6fTzuiWHE4HOzatQt//vknwsPDacehSumGOtkyhop79+4dfv75Z8TGxmLv3r3o0qXLD1+zcOFCxMfH4/Tp00o/lVwZNW3aFCEhIWjZsiXtKFWSm5uL48ePIzAwEE+ePIGHhwe4XC5atGihMP+eL126BG9vb8TFxcHIyIh2HCqUrsfHljH8mEgkwt69e+Hg4IDGjRvj4cOHFSp6ALB06VK8ffsWe/fulXBKRtYkJSUhKysLTk5OtKNUmZ6eHsaPH4/r16/j1q1bMDAwgLu7++fe4du3b2lHrLauXbvCw8MDEyZMgJL1ez5Tuh6fp6cnOnXqBD8/P9pRZNLjx4/h5+eHkpIS+Pv7V2k/xH/++QcdO3bEjRs3pLKAmZENe/fuxbVr1xAcHEw7iliJRCJERUWBx+Ph5MmTaNOmDXx8fDBw4EC5Xb5TUlKCVq1aYebMmRgzZgztONJHY2dsWgQCATEyMiJv3ryhHUXmlJSUkGXLlhFDQ0OydetWIhAIqnW9bdu2kdatW7MDfpXI4MGDCY/Hox1DogoKCkhISAjp2bMnMTAwIOPGjSPXrl0jIpGIdrRKe/jwITEyMiIvXrygHUXqlKrHx5YxlO3mzZvw9fVFgwYNsHPnTrGsbSSEoHfv3mjTpg2WLVsmhpSMLOPz+TAxMcHjx49hampKO45UvH37FiEhIQgMDERhYSG4XC64XC4aNGhAO1qFbdq0CSdOnMDVq1ehpqZGO47UKNU9Pjab82u5ubmYMmUKhg0bhqVLl+L06dNiW9DP4XCwf/9+7NmzB7dv3xbLNRnZdefOHVhbWytN0QOAunXrYu7cuYiPj8fx48eRlZUFFxcXdOjQAQEBAcjNzaUd8YemT58ObW1trF69mnYUqWKFT0n99ddfsLOzA5/PR2JiItzd3cU+a61u3brYuXMnvLy8kJ+fL9ZrM7JFnpYxiBuHw0HLli2xdetWpKSkYM6cOQgNDUX9+vXh4eGBsLAwCAQC2jHLpKKigoMHD2Lbtm2Ijo6mHUdqlGaoMz09HY0aNUJ6erpSz+h8+/Ytpk6disTEROzduxedOnWSeJtjx46Fqqoq/P39Jd4WQ0erVq2wfv16qfx7kheZmZk4cuQIeDwekpOT4enpCR8fH9jZ2dGO9o3jx49j0aJFePDgAXR0dGjHkTil6fFFREQo9TIGkUiE3bt3w9HREba2toiLi5Pah9SWLVsQGRnJdnVRUBkZGXj69ClcXV1pR5EphoaGmDJlCu7cuYPIyEioqamhV69eaNmyJbZs2YL09HTaET9zd3eHq6srZs+eTTuKdFCdWiNFnp6eZPfu3bRjUJGYmEjatWtHXF1dSXx8PJUMUVFRxMzMjLx7945K+4zkHDp0iAwYMIB2DLkgEAjIhQsXiJeXF9HT0yMDBgwgJ06cIMXFxbSjkdzcXGJlZUVOnz5NO4rEKUWPTyQSITw8XOnu75WUlGDp0qXo1KkTPDw8EBUVRW2YpV27dhg3bhzGjRuntItmFVVYWJjS3t+rLFVVVXTr1g1BQUFITk7G4MGDsX37dpibm2Py5Mm4c+cOtffHp20H/fz8FH7bQaW4xxcdHY0xY8YgMTGRdhSpuX79Ovz8/NCkSRNs374dFhYWtCOBz+fD1dUV48ePx8SJE2nHYcSAEIK6devixo0bcjWNX9YkJSUhKCgIgYGBUFVVhY+PD7y8vKgcm7Zw4UI8fPgQZ86cUZht2v5LKXp8yjSbMycnBxMmTMDIkSOxcuVK/PnnnzJR9ABAXV0dwcHBWLx4MZ48eUI7DiMGDx8+RM2aNVnRq6b69etj8eLFePr0KQ4cOICkpCQ0b94c3bp1A4/Hk+qs6KVLl+Ldu3cKve0gK3wKghCCkydPwtbWFhwOB4mJiRgyZIjMfWNr2rQpli9fDi8vL4Xb/V4ZsWFO8eJwOHB1dcXu3buRmpqKCRMm4NixY7C0tMTo0aNx6dIliEQiiWbQ0NBASEiIQn9BVfihzoyMDDRs2BBpaWnQ1NSkHUciUlJSMHXqVDx58gT+/v5o37497UjlIoSgb9++cHZ2xvLly2nHYaqha9eumDVrFvr160c7ikJ7//795wN0s7Oz4e3tDS6XK9G9cHfu3IkDBw7g5s2bUFdXl1g7NCh8jy8iIgKdO3dWyKInEomwY8cOODk5oXnz5oiNjZX5ogf8+61237592Lt3L27evEk7DlNF+fn5uHv3Ljp37kw7isIzMzPDzJkzERsbi9OnT6OoqAgdO3b83DvMzs4We5uTJk2CsbGxYn45pTafVEq8vLzIrl27aMcQu/j4eOLq6kratWtHEhMTacepklOnTpEGDRqQjx8/0o7CVMHp06dJly5daMdQWnw+n5w9e5YMHz6c6OnpkWHDhpEzZ86IdWP4d+/eETMzMxIVFVV2BoGQvErPJ4/ffSSv0vMJXyAUW9uSpNBDnSKRCGZmZrh79y7q169PO45YFBcXY+XKldi9ezd+//13+Pn5QUVFfjvu48aNA4fDQUBAAO0oTCVNnToV9erVwy+//EI7itLLzs7GsWPHwOPx8Pz5c4waNQo+Pj5wdHSs9n3+v//++3NvU1dXF9kFpTh6LxknYlKQlFkAdVUVqHA4EBECvlCE+oY6GNbCAiNbWUK/hmxuGKLQhe/u3bvw8fHBo0ePaEcRi6tXr8LPzw92dnbYunUrzM3NaUeqtry8PDRv3hwbNmzAoEGDaMdhKsHGxgYnTpyAo6Mj7SjMF549ewYej4egoCDo6urCx8cHnp6eMDMzq/I1/fz8UMIXwG7kLwiIegUOByjmf3+SjZa6CggBxre3xnS3xtBQk60v5wpd+JYvX47c3Fxs2LCBdpRqyc7Oxi+//ILQ0FBs375d4QrErVu3MHjwYMTGxlbrzclIz4sXL9C+fXu8fftW5mYOM/8SiUS4du0aAgMD8ddff8HV1fXzAbpaWlqVutaz1Ax0X3UG6nrG4Isq/v+3troKTHW1EDLeBeb62pX9ESRGtsqwmMn7MgZCCI4dOwZbW1toaGggMTFR4YoeALi6usLX1xdjx45lu7rIifDwcPTo0YMVPRmmoqKCzp0748CBA0hJScGoUaMQEBCAunXrws/PDzdu3KjQ+y01pwgjDjyAiq5JpYoeABTxRUjOKkL/7VFIzSmq6o8idgrb48vMzESDBg3kdhlDcnIyJk+ejJcvX8Lf3x9t27alHUmi+Hw+2rZtizFjxmDy5Mm04zA/MHDgQIwcORIeHh60ozCVlJKSguDgYAQGBoLP538+QNfKyuqb55YKROix+SqSs4ogrEapUOVwUK+2NiJmdoK6Kv3+Fv0EEhIREYFOnTrJXdETCoXYtm0bWrRogdatW+PBgwcKX/SA/9/VZcmSJQq7aFZRlJaW4sqVK+jevTvtKEwVWFhYYP78+Xj06BEOHz6MtLQ0tGrVCp07d8b+/fvx8ePHz8/dEvkUHz4WV6voAYCQELz/WIItkc+qG18sFLbHx+Vy4erqikmTJtGOUmHx8fHw9fWFhoYG9u7di6ZNm9KOJHW7du3Cvn37cOvWLYVbNKsorly5grlz5+Lu3bu0ozBiUlpainPnziEwMBBXrlxBv379MMTDGwtui1Ai+P4klvch81Hy9gk4KqoAANVahjD32/Pd52uqqeDOAjfqsz0VsvCJRCLUqVMHd+7cKbP7LmuKiorw+++/w9/fH3/88QfGjRsn10sUqoMQgn79+sHJyQkrVqygHYcpw4IFC6Cmpobff/+ddhRGAjIyMnD48GHsuvIcBdadwFH//qjZ+5D50LHrglqOFdu2TktdBTO7NcaEjg3FFbdKFPLTNSYmBrVr15aLonf58mU4ODjg2bNnePjwIXx9fZW26AH/v6vLvn372K4uMio8PJztz6nAjIyMMG3aNNRtP6TcolcVxXwRTtxPEes1q0KNdgBJkIfZnFlZWZgzZw4uXryI7du3Y8CAAbQjyQwzMzPs3r0b3t7eiI2NRa1atWhHYv7nw4cPePnyJdq0aUM7CiNBAqEISZkFFXpuzpVA5FwJhHptc+h39IZWfYdyn/86swACoQhqFCe5KGTXQpYLHyEER44cga2tLXR0dJCQkMCKXhkGDhyIrl27Yvr06bSjMF+IiIiAm5sbu/+q4FKyiyo0+9KgyxiYTwyAxZRA1GzeC2knfwc/+125r1FXVUFKNt2lDQrX48vKykJCQgI6duxIO8o3kpKSMGnSJCQnJ+PPP/+Ei4sL7UgybdOmTWjevDlOnTqFIUOG0I7DgA1zKhpCCPLz85GWloa0tDR8+PABaWlp+OddLkpLbABO+V9wNOs2+fy/a9q7oeDRVRS9uAd15/7ffY0Kh1PuhBlpULjCJ4vLGD4tUVixYgVmzZqFOXPmQENDNvewkyU1a9ZEUFAQBg0aBFdXV9SpU4d2JKUmEokQERGBlStX0o7ClEMoFCIzM/NzEfuyoJX1GIfDgampKUxMTGBiYgJTU1NoG9f7d6ZmZac+cjj40YtEhECT8hZmClf4ZG2YMy4uDuPHj0fNmjVx8+ZNiZ6fpYhcXV0xceJEjB07FufPn2c7hVD04MED1K5dW2E2fJcnhYWFFSpiHz58QHZ2NvT19T8XsS8LmouLyzeP6ejofNOeQChC6JIwQPj9IiYqzkfJ2yfQqmcPqKii4J9rKElOQO1ufuX+LHyhCBYGdLcvU6jCJxKJEBYWhqVLl9KOgqKiIixbtgz79+/HqlWrMHbsWPahXUWLFy9Gu3btsHPnTkyZMoV2HKUVHh6OXr160Y6hEEQiEbKzsyvcK+Pz+V8Vsk//rVevHlq1avXVY0ZGRlBTq95Hu5qqCuob6uB5Wv53n0NEQuRcCwY/KwXgqEDd0ALGQxZDvXb5m+dbGepQndgCKFjhe/DgAQwMDGBtbU01x8WLFzFx4kQ4Ozvj4cOHbOPlavq0q0u7du3QtWtXNGvWjHYkpRQeHo758+fTjiGzSkpKvilY3ytoGRkZqFmzZpm9shYtWnzzWK1ataT+xXlYCwtsjnz63VMYVGvooc7oTZW6ppa6CtxbWogjXrUoVOGjPcyZmZmJ2bNn4/Lly9i5cyf69u1LLYuiady4MVasWAEvLy/cunWL3SOVso8fPyImJgadOnWiHUVqCCHIzc2t0PBiWloaCgsLYWxs/E2vzMzMDI6Ojl89ZmxsLPP/hjuaq2JNSSmgIr4yQQgw3NlSbNerKoUrfEuWLJF6u4QQHDp0CLNnz8bIkSORmJiImjVrSj2HovPz88PZs2exbNkyNsFCyi5dugRXV1fUqFGDdpRq4fP5SE9Pr9DwYlpaGrS0tL7qeX36r62tLbp06fLVY/r6+gpxO0MkEmH37t1YsmQJXPz+wHNVCxSVc/ZeRWmrq2Jce2vq25UBClT4srKyEB8fL/VlDK9evcKkSZPw7t07nD59Gq1bt5Zq+8rk00ntzZs3R+/evdG+fXvakZSGrC5j+HI6fkV6ZR8/foShoeE3Q4kmJiZo1qzZV48ZGxtDW1t2zpCThkePHsHX1xfAvwdfN2rcVGynM5jpamK6m424olaLwuzVefToUQQFBeHs2bNSaU8gEGDLli1YtWoV5syZg9mzZ7NFvVJy5swZTJ8+HbGxsdDV1aUdR+ERQtCgQQOcOXMGdnZ2Em9PKBQiIyOjwr0yFRWVMntl/33MxMQEhoaGSr0l4PeUlJTgjz/+wM6dO7F8+XJMmDDh899Tas6/5+nlFvKrVPxUORzo1VDHmantZeYwWoXp8Unz/l5MTAx8fX2hr6+P27dvo1GjRlJpl/lX//79Pxe/AwcO0I6j8J49ewY+nw9bW9sqX+PTdPyKzGL8NB2/rOLVsGHDbx4razo+U3FRUVHw9fVF06ZNERsbC3Pzr2dlmutr48zU9vAMuI0PH4srNeypra4KM11NBMvYCewK0eMTiUSoW7cubt68iQYNGkisncLCQixZsgQ8Hg9r1qyBj4+PQozpy6P8/Hw4OTlh9erVGDp0KO04Cm3btm2IjY3Fvn37Pj/23+n4PypofD6/3N7Yl4+JYzo+82O5ubmYN28ezp49i61bt/5wd6RSgQhbIp8iIOoVOBx8d7YnAGirq0BEAN8ODTDdzUYmDp/9kkIUvpiYGHh4eEj0ANOIiAhMnDgRLi4u2Lx5M0xMTCTWFlMxd+7cwYABA/DgwQPUrVuXdhy592k6/n+L2J49e2BhYQEtLa3Pj2VkZKBWrVo/HF789F8a0/GZ7zt16hR+/vln9OvXD6tXr4a+vn6FX5tTWIqj95Jx4n4KXmcWQF1VBSocDkSEgC8UwcpQB+4tLTDc2VImJrKURSEK38qVK5Geno7NmzeL/drp6emYNWsWrl+/jl27dsnUrjAMsHTpUty6dQuhoaHs3s1/fJqOX9FeWWFh4TeFy9DQEDt37sTGjRvRoEEDuZqOz3wrNTUVU6dOxePHj7F371506NChWtcTCEVIyS5CiUAETTUVWBhoU1+cXhEKMZ4QGhqKX3/9VazXJIQgKCgIc+fOhZeXFxISEtgSBRm0aNEidOjQATt27MC0adNox5G4L6fj/6igpaenf56O/98emJ2d3TePlTUdPzIyErdu3cLkyZMp/cSMOIhEIuzZswe//fYbJk+ejCNHjohlP2M1VRVYGcnfPVa5L3zZ2dl4+PChWBfWvnz5EhMnTkR6ejrOnTsHZ2dnsV2bES91dXUEBQWhbdu2cHNzw08//UQ7UqV8mo5f0a2rPn78CCMjozKHFD9Nx/9yyFFLS6ta+WR1GQNTcf/88w98fX0hEolw5cqVak1SUhRyX/guXLiAjh07VvsNDvy7RGHjxo1Yu3Yt5s2bhxkzZrAlCnLAxsYGK1euhKenJ+7cuUN9CO7L6fgVKWiqqqpl3iNr3LgxOnTo8NVjtWvXluqQblhYGPbs2SO19hjxKSkpwerVq7F9+3YsXboUkyZNYrcD/kfuC5+4ljHcu3cPvr6+MDIywp07d9CwYUMxpGOkxdfXF2fPnsWSJUuwatUqsV+/sLDwu+vI/lvQ/jsd/8uC9mk6/pePyep0/Ldv3yIlJQWtWrWiHYWppBs3bsDX1xc2NjZ48OABLCzo748pS+R6cotIJIK5uTlu3LhR5WUMBQUF+PXXXxESEoL169fDy8uLzT6TU2lpaWjevDmOHj36w5v2IpEIWVlZFe6VCQQCmJqa/nAqvqmpKQwNDRViOv7Bgwdx/vx5HDt2jHYUpoJyc3OxYMEC/P3339iyZQuGDh3KPs/KINfvzk87d1S16IWFhWHSpElo3749EhISYGxsLOaEjDTp6upi5cqVGDFiBLZs2VLmydKf/vtpOn5Zxatly5bfPKaM0/HDwsLY/T058tdff2HatGno3bs3EhISYGBgQDuSzJKrHt9/p84G7d6MzIzKL2NIS0vDzJkzcevWLezatYu9uWUUIQQ5OTkVPoCzqKgIJiYmKCkpgYaGBrp16/bdHpqRkRH1e4GyTCgUwtTUFLGxsWyYTMa9ffsW06ZNQ0JCAvbu3atUJ2hUlcz3+LIL/rdYMiYFSf9ZLFlYbI86hqrYffUFRrb68WJJQggCAwMxb948cLlcxMfHy+z9FUX1aTp+RYYXP03HL6t42dvbf/PYp+n4BQUFcHJyQr9+/eDu7k77R5ZL9+/fh5mZGSt6MkwkEsHf3x+LFy/GxIkTERISIpZJfspAZnt8ldkeR0tdBYQA49tbY7pbY2iofTtz6fnz55gwYQJycnLg7++PFi1aSDK+0iCEIC8vr8IbCn85Hf9HGwpXZzp+dHQ0+vfvj5iYmG/2HmR+bPny5cjNzcWGDRtoR2HK8PjxY/j5+aG0tBT+/v6wt7enHUmuyGThS80pquKGqCow1dVCyBcbovL5fGzYsAHr16/HggULMH36dIWYeCBJAoEAmZmZFV5bpqqqWqFJHyYmJlKdjr98+XJERUUhLCyMTeOupHbt2mHp0qXo3r077SjMF0pLS7FmzRps2bIFS5YsweTJk6Gqqko7ltyRucInziMwUp/Gw9fXF3Xq1MGuXbtgbW0tgcTy4cvp+D8qaNnZ2TAwMKjQhsKyPB1fIBCgQ4cO8PDwwM8//0w7jtzIzs5G/fr1Px/EysiGW7duwdfXF9bW1ti5cycsLemfZC6vZKrwlQpEYjn0UIUDaAsLkMmbiQ3r12LUqFEKNyOvrOn45RW0/07HL6+gKcp0fODfIW5XV1e2Y0UlnDhxAvv27UNoaCjtKAyAjx8/YuHChTh16hQ2b94Md3d3hfs8kzaZ+nTbEvkUHz4WV6voAYCIAEXQxJRd5+A5qLl4wklBcXHx58L1o4KWkZEBXV3dMovYf6fjm5qaombNmkr5ZmnUqBFWrVoFLy8vmdjVRR6wbcpkx+nTpzF16lT06NEDiYmJbImCmMhMjy+7oBQuqyNRIij7nh4R8JEZsRPFr2MhKs6Hmr4ZDDr5QLvh9/fR1FRTwZ0FbtSOxvhyOv6PJn18OR2/Ir0yNh2/4gghGDRoEJo1a4bVq1fTjiPTCCGoX78+IiIi0LRpU9pxlNa7d+/w888/Iy4uDnv37kXnzp1pR1IoMtPjO3ovGeV1SIhICLVaRjAbtRqqesYoenEP6X+vQd2x26Gmb1rmazicf687oaP4th/j8/kV7pWlp6dDW1u7zOJlb28PNze3rx7T09NTyl6ZpHE4HAQEBMDR0RG9e/dm65zK8fjxY3A4HDRp0oR2FKUkEomwb98+LFq0CL6+vuDxeNDWlp2TyxWFzBS+EzEp5S5ZUNHQgn4Hz8+/r9GoNdT0TFHy/vl3C18xX4QT91PKLXxfTsevyCzGvLw8GBkZldkbs7W1/eoxY2NjNjlARhgbG8Pf3x8+Pj6Ii4uDnp4e7Ugy6dNuLewLmPQ9efIEfn5+KC4uxsWLF+Hg4EA7ksKSicInEIqQlFlQqdcIC7LBz0qFhnG9cp/3Mj0fvOAQZKZ/v6B9OR3/y4LWpEkTdOjQ4avHpL07PiM+ffv2xdmzZzFt2jTweDzacWRSeHg4/Pz8aMdQKqWlpVi3bh02bdqEX3/9FVOnTmVLFCRMJu7xvc4oQJ9t11FYKqzQ84lQgLRjS6BmUAeGvaaW+1yOsBSO787DylCnzPtmxsbGMjsdnxG/goICtGjRAr///juGDx9OO45M+XSPOSUlhfWIpeTOnTsYP3486tWrh507d6J+/fq0IykFmejxlQhEUKng0AohImSc3QCoqqF294k/fL5OjRpYs24jmpjVqm5MRgHo6OggODgY/fr1Q9u2bdmWXF+4du0aHB0dWdGTgry8PCxatAjHjx/Hpk2bMGLECDa8LEUyMWanqaYCUQU6noQQZJ7fCmFBDowHLwRH9cd1W0QINMvYwoxRXq1atcK0adMwevRoiEQV3xlI0YWHh6NXr160Yyi8s2fPws7ODvn5+UhMTMTIkSNZ0ZMymagIFgba4At//AGUFb4D/MxkmAz7DSrqmhW6Nl8ogoUBmxXFfG3+/PkoLCzE1q1baUeRGWz9nmS9f/8eI0aMwMyZM3HgwAHs378ftWvXph1LKclE4VNTVUF9w/Lvswly05AfG4bSDy+Rss0bbzYMw5sNw5CfeLnc19WvXQNqqjLxYzIyRE1NDUFBQVi5ciUSEhJox6EuOTkZHz58YJu3SwAhBPv27YODgwMaNGiAhw8fomvXrrRjKTWZmNwCALuvvsDmyKflLmmoLI6Qj+J7JzCkmR64XC5at27NhhSYr+zfvx9btmxBdHQ0NDUrNoqgiAICAhAZGYnDhw/TjqJQnj17Bj8/PxQUFMDf3x+Ojo60IzGQkR4fAIxsZQlxl2ANTU2E71yKOnXqwNvbG02bNsWKFSvw+vVr8TbEyK0xY8agQYMG+PXXX2lHoYrd3xMvPp+PP/74A66urhg4cCBu3brFip4MkZkeHwCsC3+M/TdeVeooou/RVlfFuPbWmNPj3x0oCCGIjo4Gj8fDsWPH8NNPP4HL5WLYsGFsFpuSS09PR/PmzRESEqKUW0MJBAKYmJggMTERderUoR1H7kVHR2P8+PEwNzfHrl27YGVlRTsS8x8y0+MDgOlujWGqqwXVag5HqnI4MNPVxHQ3m8+PcTgctGnTBjt27EBqaipmzpyJ8+fPo379+hg5ciTOnz8PgUBQ3R+BkUPGxsYICAiAj48PcnJyaMeRuujoaFhaWrKiV035+fmYMWMGBg4ciPnz5+P8+fOs6MkomSp8GmoqCBnvAr0a6lUufp/O4wse7wL170xq0dDQwKBBg3Dy5Em8ePECnTp1wooVK2BhYYGZM2ciJiYGMtQRZqSgd+/e6NevH6ZOLX9DBEXEhjmr7/z587Czs0NOTg4SEhIU8ig0RSJTQ52fVP0EdlWY6Woi+IsT2Cvj2bNnCA4ORlBQEGrUqAEulwtPT0+Ym5tX+lqM/CksLESLFi2wdOlSjBw5knYcqXFxccEff/zBZhpWwYcPHzBjxgxER0djz5496NatG+1ITAXIZOED/j2UdkvkUwREvQKHg3Jne2qrq0BEAN8ODTDdzea7Pb2KIoTgxo0b4PF4OHHiBFq2bAlvb28MGTIENWvWrNa1Gdl279499OnTB/fv31eKE64zMzNhbW2N9PR0pZ7VWlmEEBw8eBDz58/H6NGjsWTJEtSoUYN2LKaCZLbwfZJTWIqj95Jx4n4KXmcWQF1VBSocDkSEgC8UwcpQB+4tLTDc2VIi5+4VFxfjzJkz4PF4uH79Ovr37w8ul4uuXbuyjWQV1MqVK3Hp0iVcuHBB4TckP3r0KIKDg3HmzBnaUeTG8+fPMWHCBOTm5sLf3x9OTk60IzGVJPOF70sCoQgp2UUoEYigqaYCCwNtqS5OT0tLw5EjR8Dj8fDu3Tt4enqCy+XCzs5OahkYyRMKhejUqROGDh2KmTNn0o4jUWPHjkWLFi2U8t5mZfH5fGzYsAHr16/HwoUL8fPPP0NNTSa2O2YqSa4Knyx59OgRgoKCEBwcDCMjI3C5XHh4eMDMzIx2NEYMXr16hdatW+PSpUuwt7enHUciCCGwsLDAlStXYGNj8+MXKLG7d+/C19cXZmZm2LVrF6ytrWlHYqpBscdxJOinn37CqlWrkJSUhA0bNiAuLg7NmjVDnz59cOTIERQVFdGOyFSDtbU11q5dC09PT5SUlNCOIxEJCQnQ1NREo0aNaEeRWfn5+Zg1axb69++POXPmIDQ0lBU9BcAKXzWpqKiga9euOHjwIFJSUuDp6YmDBw+ibt26GDduHK5cucJOAJBTo0ePho2NDRYvXkw7ikR8WsbApt2XLSwsDPb29sjIyEBCQgK8vLzY35WCYEOdEvL27VscOnQIQUFByMnJgbe3N7y9vdGkSRPa0ZhKyMjIgKOjI4KDg9GlSxfaccSqW7dumDZtGgYOHEg7ikxJS0vDzJkzcevWLezevRs9evSgHYkRM9bjk5C6detizpw5iIuLw+nTp1FcXIzOnTt/3j0mIyODdkSmAoyMjLBv3z74+PggOzubdhyxKSgowJ07dxSumFcHIQSBgYGwt7dH3bp1ER8fz4qegmI9PikSCASIjIwEj8fDuXPn0LlzZ3h7e6Nfv35sDZWMmzZtGjIzM3Ho0CHaUcTi/PnzWLt2La5cuUI7ikx48eIFJk6ciMzMTAQEBLDjmRQc6/FJkZqaGnr27ImQkBC8efMGgwYNwo4dO2Bubo6JEyfi5s2bbKs0GbVmzRo8ePBAYY7tYYfO/ksgEGDt2rVo06YNevbsiejoaFb0lADr8cmAN2/eICQkBDweD3w+//P9wAYNGtCOxnwhJiYGvXr1wr1791CvXj3acaqlSZMmOHz4sFJ/yN+/fx/jx4+HsbExdu/ezd5vSoQVPhlCCMH9+/fB4/Fw5MgRNG7cGFwuF+7u7jAwMKAdjwGwatUqXLhwARcvXpTbXV1ev36NNm3a4N27d3L7M1RHQUEBfvvtNwQHB2P9+vVstqYSUr5/9TKMw+HA2dkZW7duRWpqKubNm4eLFy/CysoK7u7uOHPmDPh8Pu2YSu2XX34Bn8/Hpk2baEepsvDwcPTo0UMpi15ERATs7e3x4cMHJCQkwNvbmxU9JcR6fHIgOzsbx48fR1BQEJ48eYKRI0fC29sbzs7O7E1LwaddXSIjI+Hg4EA7TqUNHjwYQ4cOhZeXF+0oUpOeno5Zs2YhKioKu3fvZvc3lZzyfeWTQwYGBvDz88P169dx+/ZtGBkZwcPDAz/99BP++OMPvHnzhnZEpWJtbY3169fD09MTxcXFtONUCp/Px+XLl5Vmmj4hBEFBQbC3t4eJiQkSEhJY0WNYj09eEUJw+/Zt8Hg8HDt2DI6OjvD29sbQoUOhq6tLO57CI4TA3d0d9evXx4YNG2jHqbDr169jxowZuH//Pu0oEvfy5UtMnDgR6enp8Pf3h7OzM+1IjIxgPT45xeFw4Orqil27duHt27eYOnUq/v77b9SrVw+jRo1CWFgYBAIB7ZgKi8PhYM+ePTh69CgiIyNpx6mwsLAwhe/xCAQCrF+/Hq1bt0a3bt0QHR3Nih7zFdbjUzAZGRk4evQogoKCkJSUhFGjRoHL5cLR0ZF2NIUUERGB8ePHIy4uTi5m3jo7O2PDhg3o1KkT7SgSERMTA19fXxgYGGDPnj1o2LAh7UiMDGKFT4E9efLk89FJurq64HK5GDVqFOrWrUs7mkL5+eefkZ6eLvOL29PS0tC4cWOkpaVBQ0P8hzbTVFhYiCVLloDH42Ht2rXgcrls4hfzXWyoU4E1adIEK1aswMuXL7Ft2zY8fvwYdnZ2n3ePKSgooB1RIaxZswZxcXEyv53ZhQsX0LlzZ4UrehcuXICdnR1SU1MRHx8PHx8fVvSYcrEen5IpKirC6dOnwePxcPPmTQwcOBDe3t7o3LkzVFVVaceTWw8ePEDPnj1lelcXLpcLV1dXTJo0iXYUscjIyMDs2bNx9epV7Nq1C71796YdiZETrMenZLS1tTFixAicO3cOjx8/RvPmzTF37lxYWVlh/vz5ePToEe2IcsnJyQmzZs0Cl8uFUCikHecbIpEIERERCjGxhRCCkJAQ2NnZoXbt2khISGBFj6kU1uNjAPx7Gven+4F16tSBt7c3PDw8YGJiQjua3BAKhejSpQv69++PuXPn0o7zldjYWAwfPhxPnz6lHaVaXr9+jYkTJ+Ldu3cICAhAq1ataEdi5BDr8TEAADs7O6xZswZv3rzB6tWrcf/+fTRu3Bj9+vXDsWPH5G6hNg2qqqqfJ1fExcXRjvMVeV/GIBAIsHHjRjg7O6Nz5864d+8eK3pMlbEeH/Nd+fn5+PPPP8Hj8XD//n0MHToUXC4X7dq1U8p9HivqU/G7d+8etLS0aMcBAHTp0gVz5sxB3759aUeptNjYWIwfPx56enrYs2cPGjVqRDsSI+dY4WMqJCUlBYcOHQKPx0NBQcHno5NsbGxoR5M5hBCMGDEC5ubmMrGZdV5eHurWrYv3799DR0eHdpwKKywsxLJly3Dw4EGsXr0ao0ePZrM1GbFgX9uZCrGwsMAvv/yC+Ph4nDp1Cnl5eejQocPn3WOysrJoR5QZHA4Hu3fvxokTJ3Dx4kXacXD58mW0bt1arorexYsX4eDggDdv3uDhw4cYM2YMK3qM2LAeH1NlAoEAERERCAoKQmhoKLp27Qpvb2/06dMHmpqatONRd+HCBYwdOxZxcXGoXbs2tRxTpkxB/fr18csvv1DLUFGZmZmYPXs2Ll++jJ07d8rl0Cwj+1iPj6kyNTU19OnTB4cPH0ZSUhL69euHLVu2wNzcHJMnT8bt27ehzN+runfvjqFDh2LSpElU/x7Cw8PRq1cvau1XBCEEhw4dgp2dHfT09JCQkMCKHiMxrMfHiN3r168REhICHo8HQgi8vb3h5eUFa2tr2tGkrqioCM7OzliwYAGV8++eP3+Ojh07IjU1VWaHCpOSkjBp0iSkpKTA398fbdq0oR2JUXCsx8eInZWVFRYtWoTHjx8jODgYHz58QOvWrdGpUycEBAQgNzeXdkSp0dbWRkhICGbNmoWkpCSpt//ptHVZLHpCoRCbN29Gy5Yt0b59e9y/f58VPUYqWI+PkYrS0lKEhoaCx+MhMjISPXv2BJfLRY8ePaCurk47nsStXbsW586dw6VLl6S6NdyAAQMwatQojBw5UmptVkRcXBx8fX2ho6ODPXv2oHHjxrQjMUqEFT5G6rKysnDs2DHweDy8ePECHh4e4HK5cHJyksmeiTgIhUJ07doVffv2ldokk9LSUhgbG+Ply5cwNDSUSps/UlRUhOXLl2Pfvn1YtWoVxo4dq7D/nzOyiw11MlJXu3ZtTJw4ETdv3kRUVBT09PQwbNiwz7vHpKSk0I4odp92dVm/fj1iY2Ol0uaNGzfQpEkTmSl6ly5dgoODA16+fImHDx9i3LhxrOgxVLDCx1BlY2ODZcuW4cWLF9izZw9evnwJR0dHdOvWDYGBgcjLy6MdUWzq16+PjRs3wtPTE0VFRRJvT1Zmc2ZlZWHs2LEYPXo0Nm3ahKNHj8LMzIx2LEaJscLHyAQOh4P27dtjz549SE1NxYQJE3Dy5ElYWlrC29sbERERMnnqQWV5enrCzs4OCxYskHhb4eHhVPfnJITgyJEjsLW1Rc2aNZGYmIh+/fpRy8Mwn7B7fIxMS09Px5EjR8Dj8fD27VuMGjUKXC4X9vb2tKNVWVZWFhwdHbF//350795dIm28f/8ezZo1Q3p6OtTU1CTSRnnevHmDyZMn4/Xr1wgICICLi4vUMzDM97AeHyPTjI2NMW3aNNy9excXL16Euro6+vbtCycnJ2zcuBHv37+nHbHSateujYMHD2LMmDES2+otIiICXbt2lXrREwqF2LJlC1q0aAEXFxfExMSwosfIHNbjY+SOSCTC1atXwePx8Ndff8HFxQVcLhcDBw5EjRo1aMersJkzZyIlJQXHjh0T+yQPT09PdO7cGb6+vmK9bnni4+Mxfvx4aGlpYe/evWjSpInU2maYymCFj5FrhYWF+OuvvxAUFITbt29j8ODB4HK56Nixo8wfnVRcXAxnZ2f88ssv4HK5YruuSCSCqakp7t+/j3r16ontut9TXFyM33//Hf7+/li5ciXGjRsn83/3jHJjhY9RGO/evcOhQ4cQFBSE7OxseHl5wdvbG02bNqUd7bvi4uLQrVs33L17F1ZWVmK55r179+Dt7Y1//vlHLNcrz5UrV+Dn5wdHR0ds3boVderUkXibDFNd7GsZozDq1KmD2bNnIzY2FmfOnEFpaSm6du2K1q1bY/v27cjIyKAd8RuOjo6YN28euFyu2GatSmMZQ3Z2NsaPHw9vb2+sX78ex48fZ0WPkRus8DEKycHBAevWrcObN2/w+++/4/bt22jUqBEGDhyIEydOoLi4mHbEz2bNmgVVVVWsW7dOLNcLCwuT2DIGQgiOHTsGW1tbaGlpITExEQMGDJBIWwwjKWyok1EaeXl5OHXqFHg8HmJjY+Hu7g5vb2+0bduW+g4ib968gbOzM8LDw+Hk5FTl6+Tm5sLCwgIfPnwQ+0Sf5ORkTJ48GS9fvoS/vz/atm0r1uszjLSwHh+jNGrVqgUfHx9ERkYiNjYWVlZW8PX1hY2NDZYuXYoXL15Qy1avXj1s3ry52ru6XLp0CW3bthVr0RMKhdi2bRtatGiB1q1b48GDB6zoMXKN9fgYpUYIQUxMDHg8Hg4fPgwbGxtwuVwMHz4cBgYGUs/j4eEBY2NjbN26tUqvnzhxIho3boxZs2aJJU9CQgJ8fX2hrq6OvXv3yvREIYapKFb4GOZ/+Hw+wsPDwePxEBERgW7duoHL5aJXr17Q0NCQSobs7Gw4OjoiICAAPXr0qNRrCSGwtrbGuXPnYGtrW60cxcXFWLFiBfbs2YMVK1bA19eXLVFgFAYrfAxThpycHBw/fhxBQUF4/PgxRowYAW9vb7Rq1Uri9wMvXboELpeLuLi4Sp2s8OTJE7i5uSE5OblaGa9evQo/Pz/Y2dlh27ZtqFu3bpWvxTCyiBU+hvmBV69eITg4GDweD6qqquByufD09ET9+vUl1ubs2bORlJSE48ePV7iIbd26FQ8fPkRAQECV2szJycEvv/yC0NBQbNu2DYMGDarSdRhG1rGxC4b5AWtra/z66694+vQpDhw4gJSUFLRs2RJdunTB/v378fHjR7G3uXLlSjx9+hQ8Hq/Cr6nqMgZCCE6cOAFbW1uoqakhISGBFT1GobEeH8NUQUlJCc6fPw8ej4fLly+jT58+8Pb2Rvfu3cW2MfTDhw/h5uaG6OhoWFtbf/VnAqEIKdlFKBGIoKmmAqMaHNQ1M0NSUlKlJuWkpKRgypQpePbsGfz9/dGuXTuxZGcYWcYKH8NUU2ZmJo4ePQoej4ekpCR4eHiAy+XC0dGx2vcDN2zYgD///BNXr17Fx2Ihjt5LxomYFCRlFkBdVQUqHA5EhKCELwQnPx1zhnbAyFaW0K9R/mQckUiEXbt2YenSpZg6dSrmz58PTU3NamVlGHnBCh/DiNHTp08RFBSE4OBg1KxZ8/P9wKpOEBGJRHDr3gN67UfhH1EdcDhAMV/03edrqauAEGB8e2tMd2sMDbVv72YkJiZ+nqXp7++PZs2aVSkbw8grVvgYRgJEIhGioqIQFBSEkydPwtnZGVwuF4MHD4aOjk6Fr5OaU4QRu6OQnJEHjnrFe2Ta6iow1dVCyHgXmOtrA/h3eHblypXYtWsXfv/9d/j5+bElCoxSYoWPYSSsqKgIp0+fRlBQEKKiojBw4EB4e3ujS5cuUFVV/e7rUnOK0H97FHIL+RBW4W2qyuFAr4Y6zkxtj5fx9+Dr64uffvoJ27Ztg7m5eXV+JIaRa6zwMYwUffjwAYcPH0ZQUBA+fPjw+eik/y44LxWI0GPzVSRnFVWp6H2iwgG0BPn4eHgutm7ZjCFDhlT3R2AYuccKH8NQkpiY+Pl+oKmpKbhcLjw8PGBiYoJ14Y+x/8YrFJVzP6+iVIgAY9taYfEARzGkZhj5xwofw1AmFApx5coV8Hg8/P3333Dp5IbntmMgIN+fEfrx/hkUxEeiNP01dJp1glG/meW2oammgjsL3H4425NhlAG7s80wlKmqqsLNzQ2BgYFITU1FvS4jIRQIyn2NWk1D6LUdgZoO3SvUBocDHL2XLI64DCP3WOFjGBmio6ODl8QERFW93OfVaNIWNRq7QkVbt0LXLeaLcOJ+ijgiMozcY4WPYWSIQChCUmaBRK79OrMAAmH17xkyjLxjhY9hZEhKdhHUVSXztlRXVUFKdtUPuWUYRcEKH8PIkBKBCCoSOvZIhcNBiYD1+BiGFT6GkSGaaioQSWiitYgQaJaxhRnDKBvxbCPPMIxYWBhog1+B+3BEJAQ+/SIiEEEpoKIKjsr3d4LhC0WwMNAWZ1yGkUus8DGMDFFTVUF9Qx08T8sv93m5N44g98bhz78vSLwMvXYe0O/g+d3XWBnqQE1C9w8ZRp6wBewMI2N2X32BzZFPyz2FobK01FUwq1tj+HVsKLZrMoy8Yl//GEbGjGxlCXF/HSUEGO5sKd6LMoycYoWPYWSMfg0NjG9vDW118bw9tdVV4duhAduujGH+hxU+hpFB090aw1RXC6rVXNqgyuHATFcT091sxJSMYeQfK3wMI4M01FQQMt4FejXUq1z8Pp3HFzzeRWKL4hlGHrHJLQwjw1JziuAZcBsfPhZX6ogibXVVmOlqIviLE9gZhvkXK3wMI+NKBSJsiXyKgKhX4HBQ7mxPbXUViAjg26EBprvZsJ4ew5SBFT6GkRM5haU4ei8ZJ+6n4HVmAdRVVaDC4UBECPhCEawMdeDe0gLDnS3ZRBaGKQcrfAwjhwRCEVKyi1AiEEFTTQUWBtpscTrDVBArfAzDMIxSYV8RGYZhGKXCCh/DMAyjVFjhYxiGYZQKK3wMwzCMUmGFj2EYhlEqrPAxDMMwSoUVPoZhGEapsMLHMAzDKBVW+BiGYRilwgofwzAMo1RY4WMYhmGUCit8DMMwjFJhhY9hGIZRKqzwMQzDMEqFFT6GYRhGqbDCxzAMwygVVvgYhmEYpcIKH8MwDKNU/g8AEqTu3zLn2QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_nodes_from([1,2,3,4,5])\n",
    "G.add_edges_from([(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "10f1fede",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "print(nx.clustering(G, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "9e464684",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G.remove_edges_from([(2,4),(3,4),(3,5)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "c74b2f9e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5\n"
     ]
    }
   ],
   "source": [
    "print(nx.clustering(G, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "d3f02075",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G.remove_edges_from([(2,3),(2,5),(4,5)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "a2ca5683",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "print(nx.clustering(G, 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "77043ee1",
   "metadata": {},
   "source": [
    "### 平均集聚系数与全局集聚系数的区别"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "723b309c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5ElEREQoVgeR2jH4iPpg586dWLFihd/n9dxZunQphgwZgpdeeknpUohUi8FH1EsWiwUTJ07Ee++9h2nTpildDgDg4sWLGDNmDA4cOIARI0YoXQ6RKnGOj6gXnE4nfvKTn+BnP/uZakIPABISErB27VqsWbNG6VKIVIvBR9QLzz77LMLCwrB27VqlS/mWhx56CGfPnsWHH36odClEqsShTiIv7dy5E7m5uSgpKcGQIUOULqdLO3bswOrVq3Hs2DEYjUalyyFSFXZ8RF6orq7GsmXL8M4776g29ADge9/7HkaMGIENGzYoXQqR6rDjI+ohp9OJmTNnYvbs2XjmmWeULqdbZ86cwe23345jx44hISFB6XKIVIPBR9RDzzzzDD777DPs3LlT0f163njyySdRU1ODt99+W+lSiFSDwUfUA7t27cK9996r6nm9rly5cgUjR47E+++/j8mTJytdDpEqaONjK5GCqqursXTpUmzdulVToQcAAwcOxIsvvshzPImuweAj8sDpdOLuu+/Ggw8+iMzMTKXL6ZWFCxdCp9NxuJPonzjUSeTBunXrcOjQIezYsQM6nU7pcnrts88+w1133YWTJ08iMjJS6XKIFMXgI3KjoKAAy5cv19y8njv33nsvoqKi8PLLLytdCpGiGHxEXbhw4QImTJiAd999FzNmzFC6HJ+ora3F6NGj8cknn2DkyJFKl0OkGM7xEV2nY15v5cqVARN6ABAXF4ennnoKDz/8MPh5l4IZg4/oOs899xwMBgOefvpppUvxuVWrVuH8+fPIz89XuhQixXCok+gau3fvxtKlS1FSUoK4uDily+kXBQUFWLlyJb744gue40lBiR0f0T9duHABS5YswZYtWwI29AAgJycHN998M1555RWlSyGNc7okVF624lTNFVRetsLp0sZeUXZ8RLg6rzdr1izMnDkTzz77rNLl9Ltz587htttuQ2lpKRITE5UuhzSkwdqOvMNV2FZiwfk6Kww6EaIgQJJlOFwShsaGY+54MxZMTEJUWIjS5XaJwUeEq8/XO3DgAHbt2qXp/XreePrpp/HVV19hy5YtSpdCGtDulLCh8DQ27quAIABtDvfdXahBhCwDuRnJWJ01AiF6dQ0uMvgo6O3ZswdLliwJ6Hm9rrS0tGDkyJHIy8vD1KlTlS6HVKy60YaFG4tR29wGm4fAu57JICIu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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_nodes_from([1,2,3,4,5,6,7])\n",
    "G.add_edges_from([(1,2),(2,3),(2,4),(2,5),(4,5),(4,6),(4,7),(5,7)])\n",
    "nx.draw(G, node_size=500, with_labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "3f82de3d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.3095238095238095\n"
     ]
    }
   ],
   "source": [
    "# 平均集聚系数\n",
    "print(nx.average_clustering(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "7a818eeb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.375\n"
     ]
    }
   ],
   "source": [
    "# 全局集聚系数\n",
    "print(nx.transitivity(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4d0284e2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
